/*
 * @Descripttion: your project
 * @version: 1.0
 * @Author: hongweixun
 * @Date: 2022-07-12 10:48:36
 * @LastEditors: Please set LastEditors
 * @LastEditTime: 2025-04-29 15:35:20
 */
import Vue from 'vue'
import Vuex from 'vuex'
// 引入 router 在vuex内使用router跳转
import router from '../router'
Vue.use(Vuex)
Vue.config.devtools = true;
Vue.use(router)
export default new Vuex.Store({
  state: { // 定义tabs 所需参数
    websocketErr: false,
    socketData: {},
    // 考勤统计
    recordList: [],
    // 宿舍评分统计
    floorList: [],
    // 楼栋宿舍扣分统计
    dormitScore: [],
    // 宿舍通报名单
    noticeList: [],
    // 判断楼栋宿舍是否追加数据
    dormitBool: false,
    // 新加的数据
    // 默认未断线
    socketStatus: false,
    // 存储一开始也近进来路径所带的所有参数
    routerParams: {},
    // 存储当前楼栋的考勤时段
    ruleTimes: [],
    // 存储当前服务器的日期 时分秒
    timeData: '',
    headerShowTime: '', //  头部显示时间
    selectData: '', // 底图页面下拉框选择的日期 可以判断是否可以跳转页面
    ruleIds: [], // 当前的考勤id
    ruleTimeRange: '',// 记录考勤时段范围
    floorId: '', // 当前的楼栋id
    floorName: '',
  },
  mutations: {
    SET_ERR_SOCKET (state, val) {
      state.websocketErr = val
    },
    setWebSocketData (state, val) {
      state.socketData = val
    },
    SET_RECORD_LIST (state, val) {
      state.recordList = val
    },
    SET_FLOOR_COUNT (state, val) {
      state.floorList = val
    },
    SET_DORMIT_SCORE (state, val) {
      state.dormitScore = val
    },
    SET_NOTICE (state, val) {
      state.noticeList = val
    },
    SET_DORMIT_BOOL (state, val) {
      state.dormitBool = val
    },
    SET_DORMIT_BOOL(state, val) {
      state.dormitBool = val
    },
    setRouterParams(state, val) {
      // state.routerParams = val
      window.localStorage.setItem('routerParams', JSON.stringify(val))
    },
    // 存储当前楼栋的考勤时段
    setRuleTimes(state, val) {
      // let arr = [{
      //   "rule_id": "39",
      //   "timeRage": "15:35:00-15:36:00",
      //   "start_time": "15:35:00",
      //   "end_time": "15:36:00",
      //   "add_time": "2025-04-29 13:50:00",
      //   "in_out": "1"
      // }, {
      //   "rule_id": "28",
      //   "timeRage": "15:35:00-15:38:00",
      //   "start_time": "15:35:00",
      //   "end_time": "15:38:00",
      //   "add_time": "2025-04-29 13:55:00",
      //   "in_out": "1"
      // }]
      // window.localStorage.setItem('ruleTimes', JSON.stringify(arr))
      window.localStorage.setItem('ruleTimes', JSON.stringify(val))
    },
    // 存储当前服务器的日期 时分秒
    setTimeData(state, val) {
      // state.timeData = val
      window.localStorage.setItem('timeData', val)
    },
    // 存储页面头部显示时间 当前服务器的日期 时分秒
    setHeaderShowTime(state, val) {
      window.localStorage.setItem('headerShowTime', val)
    },
    setSelectData(state, val) {
      // state.selectData = val
      window.localStorage.setItem('selectData', val)
    },
    setRuleIds(state, val) {
      // state.ruleIds = val
      window.localStorage.setItem('ruleIds', JSON.stringify(val))
    },
    setSocketStatus(state, val) {
      state.socketStatus = val
    },
    setFloorId(state, val) {
      window.localStorage.setItem('floorId', val)
    },
    setRuleTimeRange(state, val) {
      // state.ruleTimeRange = val
      window.localStorage.setItem('ruleTimeRange', val)
    },
    setFloorName(state, val) {
      // state.floorName = val
      window.localStorage.setItem('floorName', val)
    }
  },
  actions: {
    // 全局存储接收到的websocket数据，每次有新数据都会更替
    setWebSocketData (context, obj) {
      context.commit('setWebSocketData', obj)
    },
    // 关闭websoket弹窗的
    setErrSocket (context, obj) {
      context.commit('SET_ERR_SOCKET', obj)
    },
    // 全局存储当日考勤统计的数据
    setRecordList (context, obj) {
      context.commit('SET_RECORD_LIST', obj)
    },
    //  全局存储宿舍评分统计
    setFloorCount (context, obj) {
      context.commit('SET_FLOOR_COUNT', obj)
    },
    // 全局存储楼栋宿舍扣分统计
    setDormitScore (context, obj) {
      context.commit('SET_DORMIT_SCORE', obj)
    },
    // 全局存储宿舍通报名单
    setNotice (context, obj) {
      context.commit('SET_NOTICE', obj)
    },
    // 楼栋宿舍漏粉统计判断是否追加数据的
    setDormitBool (context, obj) {
      context.commit('SET_DORMIT_BOOL', obj)
    },
    // 存储一开始也近进来路径所带的所有参数
    setRouterParams(context, val) {
      context.commit('setRouterParams', val)
    },
    // 存储当前楼栋的考勤时段
    setRuleTimes(context, val) {
      context.commit('setRuleTimes', val)
    },
    //存储当前服务器的日期 时分秒
    setTimeData(context, val) {
      context.commit('setTimeData', val)
    },
    // 存储页面头部显示时间 当前服务器的日期 时分秒
    setHeaderShowTime(context, val) {
      context.commit('setHeaderShowTime', val)
    },
    setSelectData(context, val) {
      context.commit('setSelectData', val)
    },
    // 存储当前考勤规则ids
    setRuleIds(context, val) {
      context.commit('setRuleIds', val)
    },
    setSocketStatus(context, val) {
      context.commit('setSocketStatus', val)
    },
    setFloorId(context, val) {
      context.commit('setFloorId', val)
    },
    setRuleTimeRange(context, val) {
      context.commit('setRuleTimeRange', val)
    },
    setFloorName(context, val) {
      context.commit('setFloorName', val)
    }
  }
})
